<?php

namespace app\admin\controller;

use cmf\controller\AdminBaseController;
use think\Controller;
use think\Request;
use think\Db;
use think\db\Query;

class ReasonController extends AdminBaseController
{
    //显示
    public function index()
    {
        //搜索条件
        $name = $this->request->param('name');
        //查询表字段
        $reason = Db::name('reason')
            //接收所查询的值,使用where的闭包函数查询
            ->where(function(Query $query) use ($name){
                //原因查询
                if($name){
                    $query->where('name','like',"%$name%");
                }
            })
            //倒序排列
            ->order("id DESC")
            //分页：每页条数，跳转路径，额外参数
            ->paginate(3);
        //渲染分页
        $page = $reason->render();
        //渲染页面，传参
        return view('index',['reason'=>$reason,'page'=>$page]);
    }

    //添加
    public function add()
    {
        //判断提交类型，是否为post提交
        if (request()->isPost()) {
            //获取当前id对应的全部数据
            $data = input();
            //判断原因名称是否为空
            if(empty($data['name'])){
                $this->error('原因名称不能为空');
            }
            //查询数据库，判断是否存在相同数据
            $hasReason = Db::name('reason')->where('name',$data['name'])->find();
            if($hasReason){
                $this->error('原因名称已存在');
            }
            //添加数据
            $add = Db::name('reason')->insert($data);
            //判断是否添加成功
            if ($add) {
                $this->success('添加成功','reason/index');
            } else {
                $this->error('添加失败');
            }
        }
        //渲染页面
        return view('reason_add');
    }

    //编辑
    public function edit()
    {
        //判断提交类型，是否为post提交
        if (request()->isPost()){
            //获取当前id对应的全部数据
            $data = input();
            //查询指定id的数据
            $where = ['id'=>$data['id']];
            //更新指定id的数据
            $edit = Db::name('reason')->update($data,$where);
            //判断是否更新成功
            if ($edit){
                $this->success('修改成功','reason/index');
            }else{
                $this->error('修改失败');
            }
        }
        //查询要编辑的记录
        $id = input('id');
        $reason = Db::name('reason')->get($id);
        //渲染页面，传参
        return view('reason_edit',['reason'=>$reason]);
    }

    //删除
    public function delete()
    {
        //获取当前id对应的全部数据
        $data = input();
        //获取数据库中的id，删除数据
        $del = Db::name('reason')->delete($data['id']);
        //判断是否删除成功
        if($del){
            $this->success('删除成功','reason/index');
        }else{
            $this->error('删除失败');
        }
    }
}